home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Scope / Scope Disk #058 (199x)(Scope PD)(US)[WB].zip / Scope Disk #058 (199x)(Scope PD)(US)[WB].adf / B1Subs / PixAminer < prev    next >
Text File  |  1989-01-24  |  5KB  |  182 lines

  1.  
  2. CLEAR,25000
  3.  DIM Code%(1220),Look$(200),F$(40),File0$(40)
  4.  
  5. WINDOW 1,,(0,20)-(500,124),23
  6. WIDTH 77
  7. ON BREAK GOSUB Ciao:BREAK ON
  8.  
  9.   COLOR 2,1:CLS
  10.   
  11. '**** put a routine to get FileName$ here ***
  12. '**** or just change the LISTing each time***
  13.   PRINT " INPUT the name of the picture you want to examine.
  14.   PRINT 
  15.   PRINT "If it is not on this disk use the device name as in;
  16.   PRINT: COLOR 3
  17.   PRINT ,"DF1:XYZ.pic
  18.   PRINT: COLOR 2
  19.   PRINT " For a demonstration, just press RETURN.
  20.   INPUT F$
  21.   FileName$=F$
  22.   IF F$="" THEN FileName$= "OB"
  23.         
  24.   CLS
  25.    PRINT ,"Checking ";FileName$
  26.  
  27. '****  The essentials for finding 
  28. '****  out whether a file is an IFF
  29. '****  picture, and if so, what kind. 
  30.  
  31.  ON ERROR GOTO IOerror
  32.  OPEN FileName$ FOR INPUT AS 1
  33.    Look$="": i=0
  34.    WHILE i<180 
  35.      Look$=Look$+INPUT$(1,1): i=i+1
  36.    WEND
  37.  CLOSE #1          
  38.  ON ERROR GOTO 0
  39.  
  40.   Wide     =  CVI(MID$(Look$,21,2))
  41.   High     =  CVI(MID$(Look$,23,2))
  42.   Deep     =  ASC(MID$(Look$,29,1))
  43.   MaxColor =  2^Deep-1
  44.   Mode     =  1
  45.   
  46.   IF Wide=640 THEN Mode=2
  47.   IF High=400 THEN Mode=Mode+2
  48.   IF Deep>5   THEN NoScreen=2 
  49.   IF Wide=640 AND Deep>4 THEN NoScreen=3
  50.   IF MID$(Look$,9,4)<>"ILBM" THEN
  51.     PRINT: PRINT "Not a standard IFF file"
  52.     GOSUB WayCheer: GOTO Ciao 
  53.   END IF
  54.   
  55. '****  The above essentials find 
  56. '****  out whether a file is an IFF
  57. '****  picture, and if so, what kind. 
  58.  
  59. '****  Now we'll print that info 
  60. '****  AND show what a Basic program
  61. '****  listing for it would look like. 
  62.  
  63.     COLOR 3   
  64.     PRINT " Width=";Wide;" Height=";High;
  65.     PRINT " Depth=";Deep;" Mode=";Mode;" MaxColor=";MaxColor
  66.     COLOR 2
  67.     PRINT " In a Basic program, this picture would need the following;"
  68.     PRINT "  SCREEN 2,";Wide;CHR$(8);",";High;CHR$(8);",";Deep;CHR$(8);",";Mode;":",
  69.     COLOR 3:PRINT "REM SCREEN listing":COLOR 2
  70.     PRINT "  WINDOW 2,,"; 
  71.     IF Wide>600 THEN PRINT "631,";:ELSE PRINT "311,";
  72.     IF High>240 THEN PRINT "384,";:ELSE PRINT "184,";
  73.     PRINT "16,2:",,
  74.     COLOR 3:PRINT "REM  NO border"
  75.     PRINT ,"OR":COLOR 2
  76.     PRINT "  WINDOW 2,";CHR$(34);"Title";CHR$(34);","; 
  77.     IF Wide>600 THEN PRINT "631,";:ELSE PRINT "311,";
  78.     IF High>240 THEN PRINT "384,";:ELSE PRINT "184,";
  79.     PRINT "31,2:",
  80.     COLOR 3:PRINT "REM  WITH border "
  81.     COLOR 2
  82.     
  83. '****  If it's a HAM picture we can
  84. '****  load it, but not access it
  85. '****  with Basic
  86.     IF NoScreen=2 THEN
  87.       PRINT 
  88.       PRINT ,FileName$;" is a HAM picture.
  89.       PRINT: PRINT " It will be displayed, but not manipulated by AmigaBASIC."
  90.       PRINT: MaxColor=3: GOTO LoadaPicStuff
  91.     END IF
  92.     COLOR 3   
  93.     PRINT " Do you want to create a screen and load it? ";
  94.     PRINT "Click on Y or N. 
  95.  
  96.  PRINT: COLOR 1,3: LOCATE 9: PRINT ,"  Y  "
  97.  PRINT: PRINT ,"  N  ": COLOR 3,1 
  98.  
  99.   WHILE NoPlace=LikeHome
  100.     XY=MOUSE(0): X=INT(MOUSE(1)/8): Y=INT(MOUSE(2)/8)
  101.     IF ABS(XY) AND X>15 AND X<20 THEN
  102.       IF Y=8 THEN LoadaPicStuff
  103.       IF Y=10 THEN Ciao
  104.     END IF  
  105.   WEND      
  106.  
  107. LoadaPicStuff:
  108.   LOCATE 11:COLOR 2
  109.   PRINT ,"Loading Assembly code
  110.   REM - Using assembly code by
  111.   REM -   Charles VASSALLO
  112.   REM - 33 route des Traouieros
  113.   REM - 22730 Tregastel - France
  114.   REM -       from the
  115.   REM -   March 1988 JumpDisk
  116.  
  117.   OPEN ":ILBM.code" FOR INPUT AS #1
  118.    i=0
  119.   WHILE NOT EOF(1)
  120.     INPUT#1,Code%(i): i=i+1
  121.   WEND
  122.  CLOSE #1: OpenFlag=0: GOSUB WayCheer
  123.   
  124.  IF NoScreen=0 THEN
  125.    COLOR 0,1:PRINT, "Loading picture
  126.    WINDOW 1 ',,(0,20)-(200,60)
  127.    SCREEN 2,Wide,High,Deep,Mode
  128.    WINDOW 2,,,0,2
  129.  END IF
  130.  
  131. ILBMloading:
  132.   File0$=FileName$+CHR$(0)
  133.   ILBMload&=VARPTR(Code%(0))
  134.   CALL ILBMload&(SADD(File0$))
  135.  
  136.   'OpenFlag=PEEK(2297+VARPTR(Code%(0)))
  137.   'PRINT OpenFlag 
  138.   '**** end of ILBMloading
  139.   
  140.  LOCATE 12              
  141.  PRINT: PRINT "  Draw, draw, draw      "
  142.  PRINT: PRINT "  Use RIGHT BUTTON on   "
  143.  PRINT: PRINT "  `SHOW OUTPUT' option  "
  144.  PRINT: PRINT "   for front screen     "
  145.  COLOR 1,0
  146. IF NoScreen THEN CLS
  147.  
  148.   XY=MOUSE(0): OldX=MOUSE(1): OldY=MOUSE(2)
  149.   WHILE Hell=NotFrozenOver
  150.     XY=MOUSE(0): X=MOUSE(1): Y=MOUSE(2)
  151.     LOCATE 2,3:PRINT X,Y
  152.     LINE(X,Y)-(OldX,OldY),RND*MaxColor
  153.     OldX=X:OldY=Y
  154.   WEND
  155.         
  156. IOerror:
  157.  COLOR 3,1
  158.  PRINT ,FileName$ ;" is not here"
  159.   Tries=Tries+1
  160.   IF Tries>10 THEN COLOR 2:PRINT ,"To run again with different FileName":PRINT ,"  Just type `RUN'":GOTO Ciao
  161.  RESUME 0
  162.  
  163. Ciao:
  164.   WINDOW 1
  165.   WINDOW CLOSE 2: SCREEN CLOSE 2
  166.   CLEAR,25000
  167.   COLOR 1,2:LOCATE 13,15 
  168.   PRINT "  Thank you for your support.  ";
  169.   LOCATE 9,1
  170.   COLOR 2,1
  171.   END
  172.   
  173. WayCheer:
  174.   XY=MOUSE(0):COLOR 3
  175.   PRINT ,"Click to load pic";
  176.   WHILE MOUSE(0)=0:SLEEP:WEND
  177.   WHILE ABS(MOUSE(0)):SLEEP:WEND
  178.  RETURN
  179.  
  180.